import axios from 'axios';
import { toast } from "@/composables/utils.js"

import store from "@/store"
import {  tokenCookie } from "@/composables/utils.js"
const { getToken }=tokenCookie()
// 创建一个axios实例
const api = axios.create({
    baseURL: '/api',
    timeout: 5000,
});


// 添加请求拦截器
api.interceptors.request.use(
    (config) => {
        // 在发送请求之前做些什么
        // 比如添加token等
        const token = getToken();
         if(token){
             // console.log(token)
            config.headers['token'] = token;
        }
        return config;
    },
    (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);


// 添加响应拦截器
api.interceptors.response.use(
    (response) => {
        // 对响应数据做些什么
        console.log(response.data.data)
        return response.data.data;
    },
    (error) => {
        // 对响应错误做些什么
        const msg=error.response.data.msg || "请求失败"
        if(msg==="非法token，请先登录！"){
            store.dispatch("logout").finally(()=>location.reload())
        }
        toast(msg,"error")
        return Promise.reject(error);
    }
);


export default api;